<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>await关键字的使用</title>
</head>
<body>
    <h1>await关键字的使用</h1>

    <script>
        console.log("start....");
        // await 关键字注意用于修饰一个表达式
        // 定义: await 必须写在 async 函数中, 但 async 函数中可以没有 await
        async function main(){
            // let  b = await 10;  // 等价于 let b = 10;  // 像这种就没有必要写await 
            // console.log(b);

            // 在await关键字后面的Promise对象，会将自己成功结果值返回。
            // let a = await Promise.resolve("Hello");
            // console.log(a); // Hello
            try{
                // 使用一个异步的Promise，但是有了await 结果会登录最后成功的结果，并返回
                let s = await new Promise((resolve, reject) => {
                    setTimeout(()=>{
                        //resolve("ok");
                        reject("error"); // 若返回失败的promise回去导致await报错
                    },2000);
                    
                });
                console.log("aaaaaaaaaaaaaaa");
                console.log(s);

                //let c = await Promise.reject("失败的");
            }catch(e){
                console.log(e);
                //return Promise.reject(e);
            }
            
        }

        // 执行
        const res =  main();
        //console.log(res);
        
        console.log("end....");


    </script>
</body>
</html>